<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数的实践</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background: #58a;
        }
    </style>
</head>
<body>
    <div id="ad"></div>
    <script>
        
        //需求-1 点击div 2s 后颜色变色[粉色]
        //获取元素
        let ad = document.getElementById('ad');
        //绑定事件
        ad.addEventListener("click", function(){
            //以前使用这种方法,创建一个变量保存当前对象的this的值，这样运行时,this就不会改变
            let that = this;
            //定时器
            // setTimeout(function() {
            //     //修改背景颜色 this
            //     // 这里的this是指向的window对象，window对象没有style，会报错
            //     // this.style.background = 'pink';
            //     that.style.background = 'pink';
            // }, 2000);

            //定时器箭头函数版
            setTimeout(() => {
                //修改背景颜色 this
                // 这里的this是指向的window对象，window对象没有style，会报错
                // this.style.background = 'pink';
                that.style.background = 'pink';
            }, 2000);


        })

        //需求-2 从数组中返回偶数的元素
        const arr = [1, 6, 9, 10, 100, 25];
        // const result = arr.filter(function(item) {
        //     if(item % 2 === 0) {
        //         return true;
        //     } else {
        //         return false;
        //     }
        // });

        const result = arr.filter(item => item % 2 === 0);

        console.log(result);

        //箭头函数 适合与this无关的回调，定时器，数组的方法回调
        //箭头函数不适合与this有关的回调，事件回调， 对象的方法
        

    </script>
</body>
</html>